package com.cdut.cn.boke.exception;

import com.cdut.cn.boke.pojo.ResponseData;
import com.cdut.cn.boke.pojo.ServiceException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;


// 全局异常处理器
@ControllerAdvice //捕获全局异常
public class GlobalExceptionHandler {

    @ExceptionHandler(value = {Exception.class})//指定异常为全部异常进行操作
    @ResponseBody
    public ResponseData exceeptionHandler(Exception e) {
        e.printStackTrace();
        if (e instanceof ServiceException) { //判断是自定义异常
            ServiceException serviceException = (ServiceException) e;//强转，以便调用方法
            /**
             * serviceException.getCode() 获取错误嘛
             * serviceException.getMsg()  获取错误信息
             */
            return ResponseData.error(serviceException.getCode(),serviceException.getMsg());
        }
        //拦截的异常不是我们的自定义异常
        return ResponseData.error(500,"服务器异常");
    }
}